1. Area of the Art
The present invention concerns the area of networked computer output and more specifically a universal print driver to obviate the need to install each printer specific driver on each and every client computer in such a network.
2. Background
Printing to a local printer in a computer system is a complicated process. It is more involved in a client/server environment where print jobs from client computers traverse a network to a server computer and thence to a printer for output. Particularly in a network a xe2x80x9cprinterxe2x80x9d can be any type of hard copy output device including plotters and film printers. Printing files to a new printer is not easy for an average computer user because it is necessary to install a print driver for every new printer. A xe2x80x9cdriverxe2x80x9d is a specialized piece of software that interfaces between the computer and hardware. Since each new printer has new features, it usually requires a new driver program so that the hardware features can be properly utilized.
When printing an application file to a local printer in the traditional way, the user first has to select a printer. Then the user specifies the job submission parameters (such as number of copies, paper size, etc.). Actually the selection of a xe2x80x9cprinterxe2x80x9d invokes the driver software for controlling the desired printer. When the user selects the parameters and hits the OK button, the driver converts the application file to a stream of PCL(copyright) (trademark of Hewlett Packard Corporation) or Postscript(copyright) (trademark of Adobe Corporation) or similar commands. A second software program (a print command interpreter) interprets PCL or Postscript commands and converts them to print ready image data (this action is called xe2x80x9crippingxe2x80x9d or xe2x80x9cRIPxe2x80x9d). The image data is usually compressed before transmission to the printer (to save transmission time) and then decompressed at the printer for printing. In some cases the print command interpreter resides in the printer so that PCL or Postscript code is transmitted rather than image data. In either case, the local print driver must be matched to the printer so that the correct image data or printer code is generated and transmitted.
For printing in a client/server environment (network printing) in the traditional way, the user at the client computer first chouses the printer (selects the print driver), and then selects the job submission parameters as in the local printing case. The ripping of the application file can be done at the client, at the server, or at the printer. In the first case, compressed file data and job control parameters are sent to the server which finds the output device for the client""s printing job. In the second case, the application file and job control data are sent to the server from the client, then the file is xe2x80x9crippedxe2x80x9d at the sever (the print server) and then printed on a connected printer using the job control parameters. In the third case, application file and job submission parameters are sent to the server from the client, then the file is xe2x80x9crippedxe2x80x9d and printed at the selected output device.
Though the whole printing process is transparent to the user at the client, the user usually has the burden of installing a new printer driver for every new type of printer, or more generally, for any output device hooked up to the server. The output device includes, but are not limited to, printer, digital copier, facsimile unit and multi-function machine (scanner/copier/printer). This installation process is often not straightforward and requires the user""s knowledge and correct answers to often complex questions during the installation process. Sometime the user has to add and remove the same driver several times to get a correct installation. In a network situation it may be possible to automate the installation of print drivers, but this takes up disk space on each client computer and provides yet another possible point for network failure should some of the installations be flawed.
With the present invention, the user avoids the headache of installing a new print driver for every new output device that is added to the server. The user has to install only a single Universal Print Driver. With this print driver, the user then has access to all other output devices on the server without installing all the other print drivers.
The installation of this innovative print driver is similar to installation of the conventional print driver except that during the installation process the user is prompted to enter the IP address of the server as opposed to complex information about the various printers. The print driver is invoked in a manner similar to a conventional print driver, but a web page is automatically displayed and provides output device configuration and job control parameters for the user to select. The inventive print driver consists of three components: a basic print driver for the general job control parameters (such as number of copies), an installer/uninstaller, and a browser launch program.
This invention is a print driver that essentially avoids the need to install the plethora of other print drivers on the client computer if this inventive print driver is installed in a client/server environment with a xe2x80x9ccooperatingxe2x80x9d server.
When running this print driver, a web browser will automatically pop up, allowing the user to select a specific output device (attached to the cooperating server) and configure that output device as desired to print. The user can specify the job submission parameters (items such as number of copies, source or type of paper, two-sided printing, paper size, image orientation, job priority and job scheduling) including advanced options like finishing options (items such as stapling, sorting, binding and folding), image quality options (items such as image resolution, toner usage or density, image color, image contrast, and image brightness), etc. from the web browser. The presented options automatically match the facilities of the selected printer. Of course, any options germane to a particular printer (output device) can appear for user specification. Output devices include various types of plotters, screen printers and film printers with appropriate choices of user selectable features.
This invention essentially uncouples job submission parameters from the conventional print driver in the client computer. Instead, the individual print drivers that actually control these job submission parameters are installed only on the server computer and communicate with the client computer through a web browser interface, The user is relieved of the burden of installing a multiplicity of print drivers in the conventional way and yet can still reap the full benefits of all printers installed in the network.